package com.youlai.boot.core.tenant.model.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.youlai.boot.common.base.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 租户数据源配置实体类
 *
 * @author youlai
 * @since 2025-11-22
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("sys_tenant_datasource")
public class TenantDatasource extends BaseEntity {

    /**
     * 租户ID
     */
    private Long tenantId;

    /**
     * 租户编码
     */
    private String tenantCode;

    /**
     * 数据源名称
     */
    private String datasourceName;
    
    /**
     * 数据源类型：MySQL、PostgreSQL等
     */
    private String datasourceType;

    /**
     * 驱动类名
     */
    private String driverClassName;

    /**
     * 数据库连接URL
     */
    private String url;

    /**
     * 数据库用户名
     */
    private String username;

    /**
     * 数据库密码
     */
    private String password;
    
    /**
     * 初始连接数
     */
    private Integer initialSize;
    
    /**
     * 最小空闲连接数
     */
    private Integer minIdle;
    
    /**
     * 最大活跃连接数
     */
    private Integer maxActive;
    
    /**
     * 最大等待时间(毫秒)
     */
    private Long maxWait;
    
    /**
     * 验证查询SQL
     */
    private String validationQuery;

    /**
     * 数据源状态：1-启用 0-禁用
     */
    private Integer status;
    
    /**
     * 是否主数据源：1-是 0-否
     */
    private Integer isPrimary;
    
    /**
     * 备注说明
     */
    private String remark;
    
    /**
     * 逻辑删除标识(1-已删除 0-未删除)
     */
    private Integer isDeleted;
    
    /**
     * 创建人ID
     */
    private Long createBy;
    
    /**
     * 更新人ID
     */
    private Long updateBy;
}
